home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 12: Textmags & Docs / nf_archive_12.iso / MAGS / SOURCES / ATARI_SRC.ZIP / atari source / HDX_BACK / MVICON / AICON.S < prev    next >
Encoding:
Text File  |  2001-02-09  |  3.1 KB  |  162 lines

  1.  
  2. COLBIT0    equ    $018
  3. COLBIT1    equ    $01A
  4. COLBIT2    equ    $01C
  5. COLBIT3    equ    $01E
  6. LSTLIN    equ    $020
  7. LNMASK    equ    $022
  8. WMODE    equ    $024
  9. X1        equ    $026
  10. Y1        equ    $028
  11. X2        equ    $02A
  12. Y2         equ    $02C
  13. PATPTR     equ    $02E
  14. PATMSK    equ    $032
  15. MFILL    equ    $034
  16.  
  17. ;------------------------------------------
  18. ;
  19. ; _drawicon(X,Y)
  20. ; WORD    X1         4(sp)
  21. ; WORD    Y1         6(sp)
  22. ; draw a icon in the point of (X,Y)
  23.  
  24.  
  25.         .globl    _drawicon
  26.  
  27. _drawicon:
  28.  
  29.     dc.w     $A000                ; Make line a Init call
  30.     movea.l    a0,    a3                ; save those pointers and values
  31.     movea.l    a1,    a4
  32.     movea.l    a2,    a5
  33.     move.w     4(sp), d3            ; take out the passed values
  34.     move.w     6(sp), d5
  35.     move.w    d3,    d4
  36.     move.w    d5,    d6
  37.     addi.w     #20, d4 
  38.     addi.w     #40, d6 
  39.     jsr        _vhline1
  40.     subi.w    #40, d4
  41.     addi.w     #45, d5 
  42.     jsr        _vhline2
  43.     addi.w     #40, d3 
  44.     jsr        _vhline4
  45.     addi.w    #40, d4
  46.     subi.w    #45, d5
  47.     jsr        _vhline3
  48.     rts
  49.  
  50. ;------------------------------------------
  51. ;
  52. ; _vhline(X1,Y1,X2,Y2, X3)
  53. ; WORD    X1         d3
  54. ; WORD    Y1        d4         
  55. ; WORD    X2        d3     
  56. ; WORD    Y2        d5 
  57. ; WORD    X3        d6
  58. ;
  59. ; draw a solid vertical line form (X1,Y1) to (X2,Y2)
  60. ; draw a solid horizontal line form (X1,Y1) to (X3,Y1)
  61.  
  62.  
  63.         .globl    _vhline1
  64.  
  65. _vhline1:
  66.  
  67.         move.l    a3,    d0
  68.         move.l    #$00010001, COLBIT0(a0)        ; set COLBIT variables
  69. ;move.w    #1, COLBIT1(a0)
  70.         move.l    #$00010001, COLBIT2(a0)     
  71. ;move.w    #1, COLBIT3(a0)
  72.         move.w    #1,    LSTLIN(a0)            ; draw last pixel of line
  73.         move.l    #$FFFF0002, LNMASK(a0)    ; line style mask
  74. ;move.w    #2, WMODE(a0)         writing mode (replace)
  75.         move.w     d3, X1(a0)            ; (x1,y1) and (x2, y2) into
  76.         move.w     d5, Y1(a0)            ; appropriate variables
  77.         move.w     d3, X2(a0)
  78.         move.w     d6, Y2(a0)
  79.         dc.w    $A003                ; Arbitrary Line
  80.  
  81.  
  82.         movea.l    a4,    a1
  83.         movea.l    a5,    a2
  84.         move.w     d4, X2(a3)
  85.         move.l    #pat, PATPTR(a3)    ; pattern pointer
  86.         clr.l     PATMSK(a3)            ; Pattern length n-1=0
  87. ;clr.w     MFILL(a0)             Multiple Plane fill off
  88.         dc.w    $A004                ; Arbitrary Line
  89.         rts
  90.  
  91.         .globl    _vhline2
  92.  
  93. _vhline2:
  94.  
  95.         move.l    a3,    d0
  96.         movea.l    a4,    a1
  97.         movea.l    a5,    a2
  98.         move.w     d4, X1(a3)            ; (x1,y1) and (x2, y2) into
  99.         move.w     d6, Y1(a3)            ; appropriate variables
  100.         move.w     d4, X2(a3)
  101.         move.w     d5, Y2(a3)
  102.         dc.w    $A003                ; Arbitrary Line
  103.  
  104.  
  105.         movea.l    a4,    a1
  106.         movea.l    a5,    a2
  107.         move.w     d3, X2(a3)
  108.         dc.w    $A004                ; Arbitrary Line
  109.         rts
  110.  
  111. ; right part
  112.  
  113.         .globl    _vhline3
  114.  
  115. _vhline3:
  116.  
  117.         move.l    a3,    d0
  118.         movea.l    a4,    a1
  119.         movea.l    a5,    a2
  120.         move.w     d4, X1(a3)            ; (x1,y1) and (x2, y2) into
  121.         move.w     d5, Y1(a3)            ; appropriate variables
  122.         move.w     d4, X2(a3)
  123.         move.w     d6, Y2(a3)
  124.         dc.w    $A003                ; Arbitrary Line
  125.  
  126.  
  127.         movea.l    a4,    a1
  128.         movea.l    a5,    a2
  129.         move.w     d6, Y1(a3)            ; appropriate variables
  130.         move.w     d3, X2(a3)
  131.         dc.w    $A004                ; Arbitrary Line
  132.         rts
  133.  
  134. ;    bottom part
  135.  
  136.         .globl    _vhline4
  137.  
  138. _vhline4:
  139.  
  140.         move.l    a3,    d0
  141.         movea.l    a4,    a1
  142.         movea.l    a5,    a2
  143.         move.w     d3, X1(a3)            ; (x1,y1) and (x2, y2) into
  144.         move.w     d6, Y1(a3)            ; appropriate variables
  145.         move.w     d3, X2(a3)
  146.         move.w     d5, Y2(a3)
  147.         dc.w    $A003                ; Arbitrary Line
  148.  
  149.  
  150.         movea.l    a4,    a1
  151.         movea.l    a5,    a2
  152.         move.w     d4, X1(a3)            ; appropriate variables
  153.         move.w     d5, Y1(a3)            ; appropriate variables
  154.         dc.w    $A004                ; Arbitrary Line
  155.         rts
  156.  
  157. .data
  158. pat:     dc.w    $FFFF                ; Pattern for line.
  159.  
  160.  
  161.  
  162.